Glide - 缓存

Glide的缓存可以分为两种,第一种是内存缓存,第二种是硬盘缓存。
其中内存缓存又包括活动缓存(WeakReference Cache)和 内存缓存(LruCache)。硬盘缓存就是DiskLruCache。有关缓存的链路如下:
!Pasted image 20261001001436.png
活动缓存(ActiveResources):弱引用队列(用于回收) + 弱引用缓存(Map,value为弱引用)
内存缓存(LruResourceCache):lru缓存实现
磁盘缓存(DiskLruCacheWrapper):lru缓存实现;缓存区分为:磁盘(结果缓存,ResourceCacheGenerator)、磁盘(原始数据缓存,DataCacheGenerator),两者共用一个Map,根据key的组成来区分(ResourceCacheGenerator、DataCacheGenerator中的startNext方法可以看出获取缓存时key的区别)。如果不存在则访问网络/文件(原始来源,SourceGenerator)。